package BackBeans;

import java.sql.Timestamp;
import java.util.Calendar;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import constantes.ComandosNavegacion;

import vo.Puja;
import vo.Subasta;
import vo.Usuario;
import delegados.DelegadoControlPujas;
import delegados.DelegadoControlUsuarios;

public class OfertarBean 
{
	private int precioActual;
	private int oferta;
	
	private static int codigoSubasta;
	private static String nombreProducto;
	
	private String logrado="";
	
	public String getLogrado() 
	{
		return logrado;
	}
	public void setLogrado(String logrado) 
	{
		this.logrado = logrado;
	}
	public String getNombreProducto() {
		return nombreProducto;
	}
	public void setNombreProducto(String nombreProducto) 
	{
	
		OfertarBean.nombreProducto = nombreProducto;
	}
	public int getCodigoSubasta() 
	{
		return codigoSubasta;
	}
	public void setCodigoSubasta(int codigoSubasta) 
	{
		
		OfertarBean.codigoSubasta = codigoSubasta;
	}
	public int getPrecioActual() 
	{
		return precioActual;
	}
	public void setPrecioActual(int precioActual) 
	{
		
		this.precioActual = precioActual;
	}
	public int getOferta() 
	{
		return oferta;
	}
	public void setOferta(int oferta) 
	{
		this.oferta = oferta;
	}

	public String realizarOferta()
	{		
		logrado="";
		DelegadoControlPujas delegadoControlPujas=new DelegadoControlPujas();
		DelegadoControlUsuarios delegadoControlUsuarios= new DelegadoControlUsuarios();
		
		Usuario usuario= (Usuario) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("Usuario");
		usuario=delegadoControlUsuarios.obtenerUsuario(usuario);
		
		Calendar calendarioActual=Calendar.getInstance();
		long enMilisegundosActuales = calendarioActual.getTimeInMillis();
		Timestamp sqlTimestampActual = new Timestamp(enMilisegundosActuales);
		String fechaActual=sqlTimestampActual.toString();
		
		
		
		if(precioActual<oferta)
		{

			Puja puja=new Puja(-1,codigoSubasta,usuario.getCodigo(),fechaActual,oferta);
			Subasta subasta=new Subasta(codigoSubasta,-1,-1,"","",-1,precioActual);
			if(delegadoControlPujas.realizarPuja(puja, usuario, subasta))
			{
				logrado="Se realizo la Oferta EXITOSAMENTE";
			}
			else
			{
				FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("No se pudo llevar a cabo la Oferta"));
			}
		}
		else
		{
			FacesContext.getCurrentInstance().addMessage(null,new FacesMessage("Ingrese un Oferta mayor al valor actual del Producto"));
		}
		
		return ComandosNavegacion.COMANDOOFERTAR;
	}
	
	public String irOfertar()
	{
		
		if(FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("Usuario")!=null)
		{
			return ComandosNavegacion.COMANDOOFERTAR;
		}
		else
		{
			return ComandosNavegacion.COMANDOOFERTAR;
		}
		
	}

}
